package pharao.client.views.game.landkarte.ort.lesson;

import pharao.client.dto.AufgabenStatusDTO;
import pharao.client.dto.OrtDTO;

import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.TextBox;

public class Lesson extends FlexTable {

	/**
	 * enthält den Aufgabenstatus
	 */
	private AufgabenStatusDTO aufgabenStatusDTO;

	private String expectedResult;

	/**
	 * zeigt ein rotes Kreuz an wenn die Aufgabe falsche gelöst wurde
	 */
	private Image imageResultFalse = new Image(
			"images/landkarte/ort/lessons/Rotes_kreuz.png");

	/**
	 * zeigt einen grünen haken an wenn die Aufgabe richtig gelöst wurde
	 */
	private Image imageResultTrue = new Image(
			"images/landkarte/ort/lessons/Gruener_haken.png");

	private Label labelLesson = new Label();

	private TextBox textBoxResult = new TextBox();

	public Lesson(String lessonText, String result, int aufgabenTyp,
			int difficulty, OrtDTO ortDTO) {

		labelLesson.setText(lessonText);
		expectedResult = result;

		textBoxResult.setMaxLength(4);

		setWidget(0, 0, labelLesson);
		setWidget(0, 1, textBoxResult);
		setWidget(0, 2, null);
		setWidget(0, 3, null);

		aufgabenStatusDTO = new AufgabenStatusDTO(aufgabenTyp, difficulty,
				ortDTO);
	}

	public boolean checkEntry() {

		if (textBoxResult.getText().equals(expectedResult)) {
			aufgabenStatusDTO.setPassed(true);
			setWidget(0, 2, imageResultTrue);
			return true;
		} else {
			aufgabenStatusDTO.setPassed(false);
			setWidget(0, 2, imageResultFalse);
			setWidget(0, 3, new Label(expectedResult));
			return false;
		}

	}

	public AufgabenStatusDTO getAufgabensStatusDTO() {
		return aufgabenStatusDTO;
	}

}
